# -*- coding: utf-8 -*-
from pyexpat import model
from django.db import models
from django.contrib.auth.models import User
from datetime import *
from django.contrib.localflavor.br.br_states import STATE_CHOICES
from django import forms
from stdimage import StdImageField



NIVELLI_C = (('0', 'Sem conhecimento'),('1', 'Básico'),('2', 'Intermediário'),('3', 'Fluente'),)

NIVELL_C = (('0', 'Básico'),('1', 'Intermediário'),('2', 'Fluente'))

ESCOLHA_C = (('0', 'Sim'),('1', 'Não'),)

SEXO_CHOICES = (('0','Feminino'),('1','Masculino'),)

ESTADOCIVIL_C = (("","Selecione"),('0','Solteiro'), ('1','Casado'), ('2','Viúvo'), ('3','Separado'),('4','Divorciado'),)

PESQ_C = (("","Selecione"),('0','Estou em busca de primeiro emprego'), ('1','Sou recém-formado e estou em busca de um emprego'), ('2','Desempregado Recentemente'), ('3','Estou desempregado a mais de um ano'),('4','Quero retornar ao mercado de trabalho'),('5','Quero fazer treinamentos'),('6','Estou trabalhando, mas procuro novas oportunidades'),('7','Outros'))

AREA_C = (('','Selecione'),('0', 'Administrativa'),('1', 'Arquitetura'),('3', ' Artes / Música / Teatro / Cultural'),('4',' Assistência Técnica'),('5',' Atendimento'), ('6', 'Auditoria'), ('7', 'Bancária / Mercado Financeiro'), ('8', ' Beleza / Estética'), ('9', 'Biblioteconomia'), ('10',  'Ciências Agrárias / Agribusiness'), ('11','Comercial / Vendas'), ('12', 'Comunicação / Publicidade'),('13', 'Comércio Exterior / Relações Internacionais'), ('14', 'Construção Civil'), ('15','Controle e Sistema de Qualidade'),('16', 'Educação / Ensino'), ('17', 'Enfermagem'), ('18','Engenharia'), ('19','Engenharia Civil'),('20', 'Engenharia Eletrônica / Computação'), ('21','Engenharia Mecânica / Mecatrônica') ,('22','Engenharia de Alimentos'), ('23', 'Engenharia de Materiais / Química'), ('24', 'Engenharia de Produção'), ('25','Esportes'), ('26', 'Farmácia'),('27', 'Financeira'), ('28', ' Fisioterapia'),('29', 'Fonoaudiologia'), ('30', 'Gráfica'),  ('31','Hotelaria'), ('32', 'Idiomas'), ('33','Industrial'), ('34', 'Informática / Internet / T.I.'), ('35','Jornalismo'), ('36','Jurídica'),('37', 'Logística'),('38','Marketing'),('39','Medicina'), ('39','Meio Ambiente / Biologia'), ('40', 'Moda'), ('41', 'Nutrição'), ('42', 'ONGs / Terceiro Setor'), ('43', 'Odontologia'), ('44','Psicologia'), ('45','Química'), ('46', 'Recursos Humanos'), ('47', 'Saúde'), ('48', 'Segurança Pessoal / Patrimonial'),('49', 'Segurança do Trabalho'), ('50', 'Seguros'), ('51','Serviço Social'),('52','Suprimentos / Compras'),('53','Telecomunicações'),('54','Telemarketing / Call Center'), ('55','Terapia Ocupacional'),('56', 'Transportes'), ('57', 'Turismo'), ('58','Veterinária'))

NIVEL_C = (("","Selecione"),('0', 'Graduação'),('1', 'Pós-Graduação'),('2', 'Mestrado'),('3', 'Doutorado'),('4', 'Pós-Doutorado'),('5', 'Técnico'),('6', 'Ensino Médio'),('7', 'Ensino Fundamental'),('8', 'Sem Escolaridade'),)

SALARIO_C = (("","Selecione"),('1', 'Até R$ 1.000,00'),('2', 'De R$ 1.000,00 até 1.500,00'),('3', 'De R$ 1.500,00 até 2.000,00'),('4', 'De R$ 2.000,00 até 3.000,00'),('5', 'De R$ 3.000,00 até 4.000,00'),('6', 'De R$ 4.000,00 até 5.000,00'),('7', 'De R$ 5.000,00 até 6.000,00'),('8', 'De R$ 6.000,00 até 7.000,00'),('9', 'De R$ 7.000,00 até 8.000,00'),('10', 'De R$ 8.000,00 até 9.000,00'),('11', 'De R$ 9.000,00 até 10.000,00'),('12', 'Acima de R$ 10.000,00'),)

DEF_C = (("","Selecione"),('0', 'Física'),('1', 'Auditiva'),('2', 'Visual'),('3', 'Mental'),)

CONHECIMENTO_C = (("","Selecione"),('0','Jornal Meio Norte'),('1', 'Portal 180graus'),('2', 'Cidade Verde'),('3', 'Mídias Sociais'),('4', 'Fachada do Galaxy'),('5','Outros'),)

ATUACAO_C = (("","Selecione"),('0', 'Administrativa-Financeira'),('1', 'Comercial'),('2', 'Departamento Médico'),('3', 'Educação'),('4', 'Processamento de Dados'),('5', 'Recursos Humanos'),('6', 'Suprimentos/ Materiais'),('7', 'Turismo'),('8', 'Industrial/ Operações'),('9', 'Jurídica'),('10', 'Presidencial'),)

TIPEMP_C = (('0', 'Empresa Contratante'),('1', 'Empresa de Recursos Humanos'),)

ORIGEM_C = (('0','Regional'),('1', 'Nacional'),('2', 'Multinacional'),)

REQUISICAO_C = (('0','Em Análise'),('1', 'Aprovada'),('2', 'Reprovada'),('3','Entre em contato'))

Nota_C = (('0','0,0'),('1','0,5'),('2','1,0'),('3','1,5'),('4','2,0'),('5','2,5'),('6','3,0'),('7','3,5'),('8','4,0'),('9','4,5'),('10','5,0'))

TIPOVAGA_C = (('0', 'Substituição'),('1', 'Nova posição'),)

CONF_C = (('0', 'Confirmado'),('1', 'Não confirmado'),)

TIPOPERFIL_C = (('0','Profissional'),('1', 'Operacional'),('2', 'Estagiário'),('3', 'PDD'))

REGIME_C = (('','Selecione'),('0','Autônomo'),('1', 'CLT(efetivo)'),('2', 'Free-lancer'),('3', 'Prestador de Serviço(PJ)'),('4', 'Trainee'))

NIVELH_C = (('0','Diretoria'),('1', 'Gerência'),('2', 'Supervisão/ Chefia'),('3', 'Profissional especializado com curso superior (completo/cursando)'),('4', 'Profissional com ensino médio/profissionalizante'))

PUBLICACAO_CHOICES = (('0','Empresa'),('1','Profissional'),)

class tipo_selecao(models.Model):
    descricao = models.CharField('Descrição*',max_length=40)
    observacao = models.TextField('Observação',blank=True,null=True)
    class Meta:
        verbose_name = "tipo de seleção"
        verbose_name_plural = 'Cadastro tipos de seleções'
    def __unicode__(self):
        return self.descricao

class tipo_recrutamento(models.Model):
    descricao = models.CharField('Descrição*',max_length=80)
    observacao = models.TextField('Observação',blank=True,null=True)
    class Meta:
        verbose_name = "tipo de recrutamento"
        verbose_name_plural = 'Cadastro tipos de recrutamentos'
    def __unicode__(self):
        return self.descricao

class tipo_midia(models.Model):
    descricao = models.CharField('Descrição*',max_length=80)
    observacao = models.TextField('Observação',blank=True,null=True)
    class Meta:
        verbose_name = "tipo de mídia"
        verbose_name_plural = 'Cadastro tipos de mídia'
    def __unicode__(self):
        return self.descricao

class curso(models.Model):
    nome = models.CharField('Nome do curso*', max_length=100)
    pub_date = models.DateTimeField('Data do curso*')
    descricao = models.TextField('Observações*')
    vagas = models. IntegerField('Número de vagas para o curso*', max_length=3)
    destinado = models.CharField('Destinado*',max_length=1,choices=PUBLICACAO_CHOICES,blank=True,null=True)
    inscricoes = models.IntegerField('Número de inscrições',max_length=3,blank=True,null=True)
    presenca = models.IntegerField('Número de presentes', max_length=3,blank=True,null=True)
    midias = models.ManyToManyField(tipo_midia,blank=True,null=True)
    relatorios = models.FileField('Relatórios',upload_to='relatoriocursos',blank=True,null=True)

    class Meta:
        verbose_name_plural = 'Cadastro de cursos do Instituto Galaxy'
    def __unicode__(self):
        return self.nome

class areavaga(models.Model):
    areaatuacao = models.CharField('Área de atuação*',max_length=100)
    qtdvagas = models.IntegerField(default = 0)

    class Meta:
        verbose_name = 'area da vaga'
        verbose_name_plural = 'Área da vaga'

    def __unicode__(self):
        return self.areaatuacao

class vaga(models.Model):
    area = models.ForeignKey(areavaga, verbose_name='Area da vaga*',)
    descricao = models.CharField('Vaga*',max_length=100)
    observacao = models.TextField('Dados da vaga*')
    pub_date = models.DateTimeField('Data de publicação da vaga*',default=datetime.now,blank=True,null=True)
    class Meta:
        verbose_name_plural = 'Cadastro de vagas'

    def __unicode__(self):
        return self.descricao
	
    def save(self, force_save = False, force_update=False):
        ob = areavaga.objects.get(id = self.area.id)
        ob.qtdvagas +=1
        ob.save()
        super(vaga, self).save(force_save,force_update)


class empresa(models.Model):

#Informações Pessoais
    user = models.ForeignKey(User,blank=True,null=True,editable = False)
    nome = models.CharField('Nome completo*',max_length=255,help_text='EX: Fulano Oliveira Silva')
    email = models.EmailField('Email*',max_length=255)
    cpf = models.CharField('CPF*',max_length=14,help_text="EX: 000.000.000.00")
    telefone = models.CharField('Telefone comercial*',max_length=20)
    sexo = models.CharField('Sexo*',max_length=1,choices=SEXO_CHOICES)
    atuacao = models.CharField('Sua área de atuação na empresa*',max_length=2,choices=ATUACAO_C)
    cargo = models.CharField('Cargo na empresa*',max_length=40)
#Dados da Empresa
    nome_fantasia = models.CharField('Nome fantasia*',max_length=255,)
    razao = models.CharField('Razão social*',max_length=50)
    foto = StdImageField('Logo da Empresa', upload_to='logoEmpresa',size=(80,80),blank=True,null=True)
    cnpj = models.CharField('CNPJ*',max_length=20, unique=True,help_text='XX.XXX.XXX/XXXX-XX')
    telefone1 = models.CharField('Telefone da empresa*', max_length=20,help_text="EX: XXXXXXXXXX")
    origem = models.CharField('Origem*',max_length = 1, choices = ORIGEM_C)
    site = models.URLField(null=True,blank=True)
    email1 = models.EmailField('Email da empresa',blank=True,null=True)
    nacionalidade = models.CharField('Nacionalidade*',max_length=10,help_text="EX: Brasileiro")
    cep = models.CharField('CEP*', max_length=10,help_text="EX: 00000000")
    estado = models.CharField('Estado*',max_length = 2, choices=STATE_CHOICES)
    cidade = models.CharField('Cidade*', max_length=100)
    endereco = models.CharField('Endereço*',max_length=100)
    bairro = models.CharField('Bairro*',max_length=50)
    complemento = models.CharField('Complemento',max_length=20,blank=True,null=True,help_text="EX: Quadra-X / Próximo a praça")
    ramo = models.CharField('Ramo da empresa*',max_length=60)
    tipodeempresa = models.CharField('Tipo de empresa*',max_length=1,choices=TIPEMP_C)
    dt_entrada = models.DateTimeField(default=datetime.now,blank=True,null=True)
    descricao = models.TextField('Descrição da empresa*')
    quantFuncionario = models.IntegerField('Número de funcionários*',max_length=20)
#Cadastro
    username = models.CharField('Login*',max_length=255)
    senha  = models.CharField('Senha*',max_length = 30)

    class Meta:
        ordering = ['-id']
        verbose_name_plural = 'Cadastro de empresa'

    def save(self):
        if not self.id:
            usernameRegistrado = empresa.objects.filter(username = self.username).count()
            if usernameRegistrado:
                usernameExistente = usernameRegistrado

            mail = empresa.objects.filter(email = self.email)

            if mail:
                u = mail[0]
            else:
                u = User.objects.create_user(self.username, self.email, self.senha)

            u.save()
            self.user = u
        else:
            self.user.username = self.username
            self.user.email = self.email
            self.user.set_password(self.senha)
            self.user.save()


        super(empresa, self).save()

    def __unicode__(self):
        return self.nome_fantasia

class usuario(models.Model):

#Informações Pessoais
    user = models.ForeignKey(User,blank=True,null=True, editable = False)
    nome = models.CharField('Nome completo*',max_length=255,help_text="EX: Fulano Oliveira Silva")
    nacionalidade = models.CharField('Nacionalidade*',max_length=40,help_text="EX: Brasileiro")
    nascimento = models.CharField('Data de nascimento*',max_length=10, help_text="EX: ANO-MES-DIA")
    cpf = models.CharField('CPF',max_length=20, unique=True,help_text="EX: 000.000.000.00")
    rg = models.CharField('RG(Somente dígitos)',max_length=15,blank=True,null=True)
    est_Civil = models.CharField('Estado civil*',max_length = 1,choices=ESTADOCIVIL_C)
    sexo = models.CharField('Sexo*',max_length = 1,choices=SEXO_CHOICES)
    telefone = models.CharField('Telefone*',max_length=20,help_text="EX: XXXXXXXXXX")
    telefone2 = models.CharField('Telefone opcional',max_length=20,blank=True,null=True,help_text="EX: XXXXXXXXXX")
    site = models.URLField(null=True,blank=True)
    foto = StdImageField(upload_to='media',size=(80,80),blank=True,null=True)
    dataCadastro = models.DateTimeField(auto_now_add=True,blank=True)

    cep = models.CharField('CEP(Somente dígitos)*',max_length=10,help_text="EX: 00000000")
    estado = models.CharField('Estado*',max_length = 2,choices=STATE_CHOICES)
    cidade = models.CharField('Cidade*',max_length=100)
    rua = models.CharField('Endereço*',max_length=80)
    bairro = models.CharField('Bairro*',max_length=40)
    complemento = models.CharField(max_length=20,null=True,blank=True,help_text="EX: Quadra-X / Próximo a praça")
#Interesses Profissionais
    areaes = models.ManyToManyField(areavaga,verbose_name='Área de Interesse*')
    pret_salario = models.CharField('Pretenção salarial*',max_length=2,choices=SALARIO_C)
    cargointeresse = models.CharField('Cargo de interesse*',max_length =75,help_text="EX: Programador")
    tipoperfil = models.CharField('Tipo de perfil*',max_length=2,choices=TIPOPERFIL_C)
#Escolaridade
    nivel = models.CharField('Nível',max_length=1,choices=NIVEL_C,blank=True,null=True)
    instituicao = models.CharField('Instituição',max_length=255,blank=True,null=True,help_text="EX: CEUT / UFPI ")
    curso = models.CharField(max_length=255,blank=True,null=True,help_text="EX: Contabilidade")
    ano_conclusao = models.CharField('Ano de conclusão',max_length=8,blank=True,null=True,help_text="EX: 12/2013 ")
    nivel1 = models.CharField('Nível', max_length=1,choices=NIVEL_C,blank=True,null=True)
    instituicao1 = models.CharField('Instituição',max_length=255,blank=True,null=True)
    curso1 = models.CharField('Curso', max_length=255,blank=True,null=True)
    ano_conclusao1 = models.CharField('Ano de conclusão',max_length=8,blank=True,null=True)
    nivel2 = models.CharField('Nível', max_length=1,choices=NIVEL_C,blank=True,null=True)
    instituicao2 = models.CharField('Instituição',max_length=100,blank=True,null=True)
    curso2 = models.CharField(max_length=255,blank=True,null=True)
    ano_conclusao2 = models.CharField('Ano de conclusão',max_length=8,blank=True,null=True)
    niveli = models.CharField('Nível em inglês',max_length=1,choices=NIVELLI_C,blank=True,null=True)
    nivele = models.CharField('Nível em espanhol',max_length=1,choices=NIVELLI_C,blank=True,null=True)
    nivelidioma = models.CharField('Outro idioma',max_length=20,blank=True,null=True)
    niveloutro = models.CharField('Nível',max_length=1, choices=NIVELL_C,blank=True,null=True)
#Informações adicionais
    hora_extra = models.TextField('O que faz nas horas vagas',blank=True,null=True)
    apres = models.TextField('Resumo do curriculo',blank=True,null=True)
    cursos = models.TextField('Cursos / Especializações',blank=True,null=True)
    portadordef = models.CharField('Portador de deficiência',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
    tipo_def = models.CharField('Tipo de deficiência',max_length=1,choices=DEF_C,blank=True,null=True)
    veiculo = models.CharField('Carteira de motorista',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
    tipo_veiculo = models.CharField('Tipo de veículo',max_length=50,blank=True,null=True)
    disponibilidade = models.CharField('Disponibilidade para trabalhar em outra cidade',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
    empregado = models.CharField('Está empregado atualmente', max_length = 1, choices = ESCOLHA_C,blank=True,null=True)
    notebook = models.CharField('Possui notebook',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
    gravador = models.CharField('Possui gravador',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
    cameradigital = models.CharField('Possui camera digital',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
#Pesquisa
    conhecimento = models.CharField('Como conheceu o Instituto Galaxy*',max_length=1,choices=CONHECIMENTO_C)
    conhecimento2 = models.CharField('Caso outros diga qual',max_length=50,blank=True,null=True)
    pesquisa1 = models.CharField('Por que está anunciando seu currículo?*',max_length=1,choices=PESQ_C)
    conhecimento3 = models.CharField('Caso outros diga qual', max_length=50,blank=True,null=True)
#Redes Sociais
    msn = models.CharField('MSN',max_length=100,blank=True,null=True)
    twitter = models.CharField('Twitter',max_length=100,blank=True,null=True,help_text="EX: Sem o '@' ")
    facebook = models.CharField('Facebook',max_length=100,blank=True,null=True)
    orkut = models.CharField('Orkut',max_length=100,blank=True,null=True)
    googleplus = models.CharField('Google Plus',max_length=100,blank=True,null=True)
    outrarede = models.CharField('Outra',max_length=100,blank=True,null=True)
#Experiencias Profissionais
    experiencia = models.CharField('Experiência',max_length=1,choices=ESCOLHA_C,blank=True,null=True)
    cargo = models.CharField(max_length=80,blank=True,null=True)
    nome_emp = models.CharField('Nome da empresa',max_length=100,blank=True,null=True)
    inicio = models.DateField('Data de entrada',blank=True,null=True)
    termino = models.DateField('Data de saída',blank=True,null=True)
    salario = models.CharField('Salário',max_length=50,blank=True,null=True,help_text="EX: 1.000,00")
    cargo1 = models.CharField('Cargo',max_length=80,blank=True,null=True)
    nome_emp1 = models.CharField('Nome da empresa',max_length=100,blank=True,null=True)
    inicio1 = models.DateField('Data de entrada',blank=True,null=True)
    termino1 = models.DateField('Data de saída',blank=True,null=True)
    salario1 = models.CharField('Salário',max_length=14,blank=True,null=True,help_text="EX: 1.000,00")
    cargo2 = models.CharField('Cargo',max_length=80,blank=True,null=True)
    nome_emp2 = models.CharField('Nome da empresa',max_length=100,blank=True,null=True)
    inicio2 = models.DateField('Data de entrada',blank=True,null=True)
    termino2 = models.DateField('Data de saída',blank=True,null=True)
    salario2 = models.CharField('Salário', max_length=14,blank=True,null=True,help_text="EX: 1.000,00")
#Cadastro
    email = models.EmailField('Email*',max_length=255)
    senha  = models.CharField('Senha*',max_length = 30)


    def idade(self):
        ano_a = date.today()
        ano_at = ano_a.year
        mes_at = ano_a.month
        ano_n = self.nascimento[:4]
        mes_n = self.nascimento[5:-3]
        ano = int(ano_n)
        mes = int(mes_n)
        idade = ano_at - ano
        if mes_at < mes:
            return idade -1

        return idade

    def conh(self):
        if self.est_Civil == '0':
            e = 'Jornal Meio Norte'
        if self.est_Civil == '1':
            e = 'Portal 180graus'
        if self.est_Civil == '2':
            e = 'Cidade Verde'
        if self.est_Civil == '3':
            e = 'Mídias Sociais'
        if self.est_Civil == '4':
            e = 'Fachada do Galaxy'
        if self.est_Civil == '5':
            e = 'Outros'
        return e

    def pesq(self):
        if self.pret_salario == '0':
            p = 'Estou em busca de primeiro emprego'
        if self.pret_salario == '1':
            p = 'Sou recém-formado e estou em busca de um emprego'
        if self.pret_salario == '2':
            p = 'Desempregado Recentemente'
        if self.pret_salario == '3':
            p = 'Estou desempregado a mais de um ano'
        if self.pret_salario == '4':
            p = 'Quero retornar ao mercado de trabalho'
        if self.pret_salario == '5':
            p = 'Quero fazer treinamentos'
        if self.pret_salario == '6':
            p = 'Estou trabalhando, mas procuro novas oportunidades'
        if self.pret_salario == '7':
            p = 'Outros'
        return p

    def pret(self):
        if self.pret_salario == '1':
            p = 'Até R$ 1.000,00'
        if self.pret_salario == '2':
            p = 'De R$ 1.000,00 até 1.500,00'
        if self.pret_salario == '3':
            p = 'De R$ 1.500,00 até 2.000,00'
        if self.pret_salario == '4':
            p = 'De R$ 2.000,00 até 3.000,00'
        if self.pret_salario == '5':
            p = 'De R$ 3.000,00 até 4.000,00'
        if self.pret_salario == '6':
            p = 'De R$ 4.000,00 até 5.000,00'
        if self.pret_salario == '7':
            p = 'De R$ 5.000,00 até 6.000,00'
        if self.pret_salario == '8':
            p = 'De R$ 6.000,00 até 7.000,00'
        if self.pret_salario == '9':
            p = 'De R$ 7.000,00 até 8.000,00'
        if self.pret_salario == '10':
            p = 'De R$ 8.000,00 até 9.000,00'
        if self.pret_salario == '11':
            p = 'De R$ 9.000,00 até 10.000,00'
        if self.pret_salario == '12':
            p = 'Acima de R$ 10.000,00'
        return p

    def sex(self):
        if self.sexo == '0':
            n = 'Feminino'
        if self.sexo == '1':
            n = 'Masculino'
        return n

    def est(self):
        if self.est_Civil == '0':
            e = 'Solteiro'
        if self.est_Civil == '1':
            e = 'Casado'
        if self.est_Civil == '2':
            e = 'Viúvo'
        if self.est_Civil == '3':
            e = 'Separado'
        if self.est_Civil == '4':
            e = 'Divorciado'
        return e

    def emp(self):
        if self.empregado == '0':
            k = 'Sim'
        if self.empregado == '1':
            k = 'Não'
        return k

    def disp(self):
        if self.disponibilidade == '0':
            l = 'Sim'
        if self.disponibilidade == '1':
            l = 'Não'
        return l

    def veic(self):
        if self.veiculo == '0':
            v = 'Sim'
        if self.veiculo == '1':
            v = 'Não'
        return v

    def exp(self):
        if self.experiencia == '0':
            e = 'Sim'
        if self.experiencia == '1':
            e = 'Não'
        return e

    def nivelgrad(self):
        if self.nivel == '':
            n = ''
        if self.nivel == '0':
            n = 'Graduação'
        if self.nivel == '1':
            n = 'Pós-Graduação'
        if self.nivel == '2':
            n = 'Mestrado'
        if self.nivel == '3':
            n = 'Doutorado'
        if self.nivel == '4':
            n = 'Pós-Doutorado'
        if self.nivel == '5':
            n = 'Técnico'
        if self.nivel == '6':
            n = 'Ensino Médio'
        if self.nivel == '7':
            n = 'Ensino Fundamental'
        if self.nivel == '8':
            n = 'Sem Escolaridade'
        return n

    def nivelgrad1(self):
        if self.nivel1 == '0':
            w = 'Graduação'
        if self.nivel1 == '1':
            w = 'Pós-Graduação'
        if self.nivel1 == '2':
            w = 'Mestrado'
        if self.nivel1 == '3':
            w = 'Doutorado'
        if self.nivel1 == '4':
            w = 'Pós-Doutorado'
        if self.nivel1 == '5':
            w = 'Técnico'
        if self.nivel1 == '6':
            w = 'Ensino Médio'
        if self.nivel1 == '7':
            w = 'Ensino Fundamental'
        if self.nivel1 == '8':
            w = 'Sem Escolaridade'
        return w

    def nivelgrad2(self):
        if self.nivel2 == '0':
            p = 'Graduação'
        if self.nivel2 == '1':
            p = 'Pós-Graduação'
        if self.nivel2 == '2':
            p = 'Mestrado'
        if self.nivel2 == '3':
            p = 'Doutorado'
        if self.nivel2 == '4':
            p = 'Pós-Doutorado'
        if self.nivel2 == '5':
            p = 'Técnico'
        if self.nivel2 == '6':
            p = 'Ensino Médio'
        if self.nivel2 == '7':
            p = 'Ensino Fundamental'
        if self.nivel2 == '8':
            p = 'Sem Escolaridade'
        return p

    def ingles(self):
        if self.niveli == '0':
            o = 'Sem Conhecimento'
        if self.niveli == '1':
            o = 'Básico'
        if self.niveli == '2':
            o = 'Intermediário'
        if self.niveli == '3':
            o = 'Fluente'
        return o

    def espanhol(self):
        if self.nivele == '0':
            s = 'Sem Conhecimento'
        if self.nivele == '1':
            s = 'Básico'
        if self.nivele == '2':
            s = 'Intermediário'
        if self.nivele == '3':
            s = 'Fluente'
        return s

    def note(self):
        if self.notebook == '0':
            x = 'Sim'
        if self.notebook == '1':
            x = 'Não'
        return x

    def grav(self):
        if self.gravador == '0':
            z = 'Sim'
        if self.gravador == '1':
            z = 'Não'
        return z

    def cam(self):
        if self.cameradigital == '0':
            c = 'Sim'
        if self.cameradigital == '1':
            c = 'Não'
        return c

    class Meta:
        ordering = ['-id']
        verbose_name_plural = 'Cadastro de currículo'

    def get_absolute_url(self):
        return '/curriculo/%d/'%self.id

    def save(self):
        if not self.id:
            emailRegistrado = usuario.objects.filter(email = self.email).count()
            if emailRegistrado:
                emailExistente = emailRegistrado

            usr = usuario.objects.filter(email = self.email)

            if usr:
                u = usr[0]
            else:
                u = User.objects.create_user(self.email, self.email, self.senha)

            u.save()
            self.user = u
        else:
            self.user.username = self.email
            self.user.email = self.email
            self.user.set_password(self.senha)
            self.user.save()


        super(usuario, self).save()

    def __unicode__(self):
        return self.nome


class procura(models.Model):
    nome = models.ForeignKey(usuario,verbose_name='Nome*')
    vaga = models.ForeignKey(vaga,verbose_name='Vaga*')
    data = models.DateTimeField('data de procura*',null=True, default=datetime.now())
    class Meta:
        verbose_name_plural = 'Cadastro procura de vagas'
    def __unicode__(self):
        return self.nome.nome

class recrutamento(models.Model):
    vaga = models.ForeignKey(vaga,verbose_name='Vaga*')
    tipo = models.ForeignKey(tipo_recrutamento,verbose_name='Tipo de recrutamento*')
    descricao = models.CharField('Descrição*',max_length=100)
    observacao = models.TextField('Observação',blank=True,null=True)
    data = models.DateTimeField('Data de procura*')
    class Meta:
        verbose_name_plural = 'Cadastro de recrutamentos'
    def __unicode__(self):
        return self.vaga.descricao

class divulgacao(models.Model):
    recrutamento = models.ForeignKey(recrutamento,verbose_name='Recrutamento*')
    tipo_midia = models.ForeignKey(tipo_midia,verbose_name='Tipo de mídia*')
    descricao = models.TextField('Descrição*')
    valor = models.IntegerField(max_length=10,verbose_name='Valor*')
    data = models.DateTimeField('data de divulgacao*')
    quantidade = models.IntegerField(max_length=10,verbose_name='Quantidade*')
    class Meta:
        verbose_name_plural = 'Cadastro de divulgações de recrutamentos'
    def __unicode__(self):
        return "%s - %s" % (self.recrutamento.vaga, self.tipo_midia.descricao)

class vagaempresa(models.Model):
    empresa = models.ForeignKey(empresa,verbose_name='Empresa*')
    vaga = models.ForeignKey(vaga,verbose_name='Vaga*')
    recrutamento = models.ForeignKey(recrutamento,verbose_name='Recrutamento*')
    perfilvaga = models.CharField('Tipo de perfil*',max_length = 2,choices=TIPOPERFIL_C)
    descricao = models.TextField('Descrição da vaga*')
    tipovaga = models.CharField('Tipo de vaga*',max_length=2,choices=TIPOVAGA_C)
    atividade = models.CharField('Atividade que o candidato irá exercer*',max_length=100)
    experiencias = models.TextField('Experiência e qualificações*')
    nivel = models.CharField('Formação acadêmica*',max_length=1,choices=NIVEL_C)
    salario = models.CharField('Salário mensal*',max_length=15)
    beneficios = models.TextField('Benefícios*')
    regime = models.CharField('Regime de contratação*',max_length=2,choices=REGIME_C)
    horario = models.CharField('Horário de trabalho*',max_length=15)
    nivelhierarquico = models.CharField('Nível hierárquico*',max_length= 2,choices=NIVELH_C)
    localdetrabalho = models.CharField('Local de trabalho*',max_length=30)
    quantidade = models.IntegerField('Quantidade de vagas*')
    adicionais = models.TextField('Informações adicionais*')
    etapasselecao = models.TextField('Quais das etapas deseja utilizar*')
    data = models.DateTimeField('Data de procura pela vaga*')
    
    def vaganivel(self):
        if self.nivel == '0':
            l = 'Gradua��o'
        if self.nivel == '1':
            l = 'P�s-Gradua��o'
        if self.nivel == '2':
            l = 'Mestrado'
        if self.nivel == '3':
            l = 'Doutorado'
        if self.nivel == '4':
            l = 'P�s-Doutorado'
        if self.nivel == '5':
            l = 'T�cnico'
        if self.nivel == '6':
            l = 'Ensino M�dio'
        if self.nivel == '7':
            l = 'Ensino Fundamental'
        if self.nivel == '8':
            l = 'Sem Escolaridade'
        return l

    class Meta:
        verbose_name = 'vaga para a empresa'
        verbose_name_plural = 'Vaga de empresas para recrutamento'
    def __unicode__(self):
        return self.empresa.nome+" - "+self.vaga.descricao

class requisicao(models.Model):
    empresa = models.ForeignKey(empresa,verbose_name='Empresa*')
    vaga = models.CharField('Vaga desejada*',max_length = 255)
    perfilvaga = models.CharField('Tipo de perfil*',max_length = 2,choices=TIPOPERFIL_C)
    descricao = models.TextField('Descrição da vaga*')
    tipovaga = models.CharField('Tipo de vaga*',max_length=2,choices=TIPOVAGA_C)
    atividade = models.CharField('Atividade que o candidato irá exercer*',max_length=100)
    experiencias = models.TextField('Experiência e qualificações*')
    nivel = models.CharField('Formação acadêmica do candidato*',max_length=1,choices=NIVEL_C)
    salario = models.CharField('Salário mensal*',max_length=15)
    beneficios = models.TextField('Benefícios*')
    regime = models.CharField('Regime de contratação*',max_length=2,choices=REGIME_C)
    horario = models.CharField('Horário de trabalho*',max_length=15)
    nivelhierarquico = models.CharField('Nível hierárquico*',max_length= 2,choices=NIVELH_C)
    localdetrabalho = models.CharField('Local de trabalho*',max_length=30)
    quantidade = models.IntegerField('Quantidade de vagas*')
    adicionais = models.TextField('Informações adicionais',null=True,blank=True)
    etapasselecao = models.TextField('Quais das etapas deseja utilizar',null=True,blank=True)
    dataprocura = models.DateTimeField()
    situacao = models.CharField('Situação da Requisição',max_length = 2,choices=REQUISICAO_C,default=0,null=True,blank=True)
    observacao = models.TextField('Observações sobre a situação da requisição',null=True,blank=True)

    class Meta:
        verbose_name = 'requisições de vagas'
        verbose_name_plural = 'Requisição de vaga'

    def sit(self):
        if self.situacao == '0':
            x = 'Em Análise'
        if self.situacao == '1':
            x = 'Aprovada'
        if self.situacao == '2':
            x = 'Reprovada'
        if self.situacao == '3':
            x = 'Entre em contato'
        return x

    def __unicode__(self):
        return self.empresa.nome_fantasia+" - "+self.vaga


class selecao(models.Model):
    recrutamento = models.ForeignKey(recrutamento,verbose_name='Recrutamento*')
    tipo = models.ForeignKey(tipo_selecao,verbose_name='Tipo*')
    data = models.DateTimeField('Data da Selecao*')
    quant = models.IntegerField('Quantidade de Candidatos*',max_length=10)
    observacao = models.TextField('Observação',null=True,blank=True)
    class Meta:
        verbose_name_plural = 'Cadastro de seleções'
    def __unicode__(self):
        return "Recrutamento"+str(self.recrutamento.id)+" - "+self.recrutamento.vaga.descricao

class candidatoselecao(models.Model):
    procura = models.ForeignKey(procura,verbose_name='Procura*')
    selecao = models.ForeignKey(selecao,verbose_name='Seleção*')
    data = models.DateTimeField('Horário marcado com o candidato*')
    tempolig = models.DecimalField('Tempo gasto em ligações(minutos)*',max_digits=7,decimal_places=2)
    sms = models.IntegerField('Número de mensagens enviadas*')
    sit = models.CharField('Situação do candidato*',max_length=2,choices=CONF_C)
    observacao = models.TextField('Observação',blank=True,null=True)

    class Meta:
        verbose_name = "candidato para seleção"
        verbose_name_plural = 'Cadastro de candidato para seleção'
    def __unicode__(self):
        return self.procura.nome.nome+" - "+self.procura.vaga.descricao

class Avaliacao(models.Model):
    class Meta:
        verbose_name_plural = "Avaliação"
    usuario2 = models.ForeignKey(usuario)
    entrevistador = models.CharField(max_length=100,blank=True,null=True)
    pontoons = models.TextField('Pontos negativos',blank = True,null=True)
    pontosp = models.TextField('Pontos positivos',blank=True,null = True)
    etapaselecao = models.CharField('Etapa da entrevista',max_length=60, blank=True,null=True)
    observacao = models.TextField('Observacoes',blank=True,null=True)
    nota = models.FloatField('Nota geral',max_length=2,blank=True,null=True)
    notaportugues = models.CharField('Nota em português', max_length=1,choices=Nota_C,blank= True,null= True)
    notamatematica = models.CharField('Nota em matemática', max_length=1,choices=Nota_C,blank= True,null= True)
    notaredacao = models.FloatField('Nota em redação', max_length=1,choices=Nota_C,blank= True,null= True)
    videos = models.FileField('Vídeo do Candidato',upload_to='videoscandidato',blank=True,null=True)